// SPU接口

import request from '@/utills/request'
// 引入ts类型
import type {SkuInfoData,SkuData,SpuData,HasResponseData,AllTrademark,SpuHasImag,SaleAttrResponseData,HasSaleAttrResponseData} from './type'

enum API{
    // 获取已有的SPU的数据
    HASSPU_URL='/admin/product/',
    // 获取全部品牌的数据
    ALLTRADEMARK_URL='/admin/product/baseTrademark/getTrademarkList',
    // 获取某个Spu下的全部售卖商品的图片数据
    IMAGE_URL='/admin/product/spuImageList/',
    // 获取某一个Spu下全部的已有的销售属性
    SPUHASSALEATTR_URL='/admin/product/spuSaleAttrList/',
    // 获取整个项目全部销售属性【颜色、版本、尺码】
    ALLSALEATTR_URL='/admin/product/baseSaleAttrList',
    // 追加一个新的Spu
    ADDSPU_URL='/admin/product/saveSpuInfo',
    // 更新已有的Spu
    UPDATESPU_URL='/admin/product/updateSpuInfo',
    // 追加一个新的Sku的地址
    ADDSKU_URL='/admin/product/saveSkuInfo',
    // 查看某一个已有的Spu下全部售卖的商品
    SKUINFO_URL='/admin/product/findBySpuId/',
    // 删除已有的Spu
    REMOVESPU_URL='/admin/product/deleteSpu/'
}   

// 获取某一个三级分类下已有的SPU数据
export const reqHasSpu=(page:number,limit:number,category3Id:number|string)=>request.get<any,HasResponseData>(API.HASSPU_URL+`${page}/${limit}?category3Id=${category3Id}`)
// 获取全部的SPU的品牌的数据
export const reqAllTradeMark=()=>request.get<any,AllTrademark>(API.ALLTRADEMARK_URL)
// 获取某一个Spu下已有的全部商铺的图片地址
export const reqSpuImageList=(spuId:number)=>request.get<any,SpuHasImag>(API.IMAGE_URL+spuId)
// 获取某一个已有的Spu拥有的销售属性
export const reqSpuHasSaleAttr=(spuId:number)=>request.get<any,SaleAttrResponseData>(API.SPUHASSALEATTR_URL+spuId)
// 获取全部销售属性
export const reqAllSaleAttr=()=>request.get<any,HasSaleAttrResponseData>(API.ALLSALEATTR_URL)
// 追加与修改SPU的接口 date即为新增Spu对象或者更新的Spu对象
export const reqAddOrUpdateSpu=(data:SpuData)=>{
    // 如果有Spu对象有id，更新已有的Spu
    if(data.id){
        return request.post<any,any>(API.UPDATESPU_URL,data)
    }else{
        return request.post<any,any>(API.ADDSPU_URL,data)
    }
}

// 添加Sku的请求方法
export const reqAddSku=(data:SkuData)=>request.post<any,any>(API.ADDSKU_URL,data)
// 获取Sku的数据
export const reqSkuList=(spuId:number)=>request.get<any,SkuInfoData>(API.SKUINFO_URL+spuId)
// 删除已有的Spu
export const reqRemoveSpu=(spuId:number)=>request.delete<any,any>(API.REMOVESPU_URL+spuId)
